//---------------------------------------------------------------------------

#ifndef EnvoiGEDH
#define EnvoiGEDH
//---------------------------------------------------------------------------
#ifdef _GED_DLL
  #define GEDAPI __declspec(dllexport)
#else
  #define GEDAPI __declspec(dllimport)
#endif

#define NomAppliGED               "GED'EIC"

#define CLASSEMENT_NON_REMPLI "_MANUEL_"
#define CLASSEMENT_AUTO       "_CLASS_AUTO_"
#define CLASSEMENT_MAL_RENSEIGNE "_MAL_RENSEIGNE_"
#define Defaut_RegCleLog        "Software\\EIC\\CheminPdf"
//---------------------------------------------------------------------------
#ifdef         __cplusplus
extern GEDAPI bool     GED_gGestionEnvoi;
extern GEDAPI char     GED_szCleRegLog[250];

typedef struct{
  int  nOLEInitialise;
  void *pFileDefautCap;
  bool bClassAuto;
  bool bCapture;
}CGEDGlobal;
extern GEDAPI CGEDGlobal *GEDGlobal;
bool GEDAPI __fastcall GED_IsInstallee();
bool GEDAPI __fastcall GED_IsClassAuto();
bool __fastcall CreationObjetGED( Variant *pvGedEIC);
#ifdef __BCPLUSPLUS__
AnsiString __fastcall GED_NomPilote();
AnsiString __fastcall GED_NomPilotePaniere();
void       __fastcall GED_Capture( Variant *pvGedEIC, int &DestGED);

bool         GEDAPI __fastcall GED_IsPrinterGED( const AnsiString & PrinterName);

TModalResult GEDAPI __fastcall GED_Envoi(Variant *pvGedEIC, WideString &Classement, AnsiString &NomDocument, int &DestGED, AnsiString &NomImprimante, bool &bSepareImpGroupe ,bool &bClassementAppliqueAuDocumentCourant, bool pChoixClassementEnsDocsPossible, int pDestGEDPrecedent,int pChoixPossibles);

bool GEDAPI __fastcall GED_Ouvre(        Variant *pvGedEIC, bool bEicReessayer = true);
bool GEDAPI __fastcall GED_Ferme(        Variant *pvGedEIC);
bool GEDAPI __fastcall GED_DebutDocument(Variant *pvGedEIC, const WideString &Classement, int &DestGED, const AnsiString &NomDocument, AnsiString &NomImprimante);
//Creer un version utilisable avec les AnsiStrings. Car impossible de passer des criteres contenant des espaces si classement est en WideString.
bool GEDAPI __fastcall GED_FinDocument(  Variant *pvGedEIC);
AnsiString GEDAPI __fastcall GED_DonnerDocumentSelectionne(Variant *pvGedEIC);
bool GEDAPI __fastcall GED_AfficherDocument(Variant *pvGedEIC,const AnsiString &Image);
bool GEDAPI __fastcall GED_RecupererDocumentTmp(Variant *pvGedEIC,const AnsiString &pImage, const AnsiString &pRepDestination, AnsiString &pNomFichierExporte);
bool GEDAPI __fastcall GED_EnregistrerDocument(Variant *pvGedEIC,const AnsiString &pImage,const AnsiString &pNomFichier);
TStringList* GEDAPI __fastcall GED_GetArmoire(Variant *pvGedEIC);
#endif

bool GEDAPI __stdcall GED_Ouvre(       long &pvGedEIC);
bool GEDAPI __stdcall GED_Ferme(       long &pvGedEIC);
bool GEDAPI __stdcall GED_DebutDocument(long pvGedEIC, const char* Classement, int &DestGED, const char *NomDocument, char *NomImprimante, int);
bool GEDAPI __stdcall GED_FinDocument  (long pvGedEIC);

void GEDAPI __stdcall GED_InitColonnes(int pNombreColonnes);

// pour RHPAYE
extern "C" bool __stdcall GEDAPI  GED_Debut(char * szNomImprimante, int nTaille);
extern "C" bool GEDAPI __stdcall GED_Fin();
extern "C" bool GEDAPI __stdcall GED_EstInstallee1();

#endif
//---------------------------------------------------------------------------

#endif
 
